#include "seqstack.h"




// 创建空栈
seqstack* create_empty_seqstack() {
    seqstack *s = (seqstack*) malloc(sizeof(seqstack));
    // malloc 分配内存
    if (s == NULL) {
        printf("malloc error\n");
    }

    // 初始化
    memset(s, 0, sizeof(seqstack));
    s->top = -1; 
    return s;
}

// 判空
int is_empty_seqstack(seqstack *s) {
    return s->top == -1 ? 1 : 0;
}

// 判断是否栈满了
int is_full_seqstack(seqstack *s) {
    return s->top == MAX - 1? 1 : 0 ;  
}

// 入栈
void push_seqstack(seqstack* s, dataType x) {
    if (is_full_seqstack(s)) {
        printf("stack is full\n");
        return;
    }
    s->buf[++s->top] = x;
    return;
}

// 出栈
dataType pop_seqstack(seqstack *s) {
    if (is_empty_seqstack(s)) {
        printf("stack is empty\n");
        return -1;
    }
    return s->buf[s->top--];
}

// 查看栈顶元素

dataType get_top_seqstack(seqstack *s) {
    return s->buf[s->top];
}
